var getCursorEndPosition = function(textarea) {
	textarea.focus(); // 首先当然要设为选中了
	if (textarea.setSelectionRange) {
		// W3C
		return textarea.selectionEnd;
	} else if (document.selection) {
		// IE
		var i = 0, oS = document.selection.createRange(), // 当前选中区域，记录了当前光标起始和结束位置的信息，可和
															// oR 进行对比得出当前光标位置。
		oR = document.body.createTextRange(); // 不可使用 oR =
												// textarea.createTextRange(),
												// 否则不可与 oS 进行 compareEndPoints。
		oR.moveToElementText(textarea);
		oS.getBookmark();
		for (i = 0; oR.compareEndPoints("StartToStart", oS) < 0
				&& oS.moveStart("character", -1) !== 0; i++) {
			if (textarea.value.charAt(i) == '/n') {
				// 换行 +1。
				i++;
			}
		}
		return i;
	}
}

var insertString = function(line, nPosition) {
	line = line || '';
	nPosition = nPosition || line.length;

	var $comment = $("#markdownInput");
	var endPosition = getCursorEndPosition($comment[0]);
	textValue = $comment[0].value;

	textValue = textValue.substring(0, endPosition) + line
			+ textValue.substring(endPosition, textValue.length);

	$comment.val(textValue);

	console.log($.support);
	if (jQuery.support.msie) {
		// 出现换行时，位置应 -1。
		endPosition -= textValue.split('/n').length - 1;
		var oR = $comment[0].createTextRange();
		oR.collapse(true);
		oR.moveStart('character', endPosition + nPosition);
		oR.select();
	} else {
		$comment[0].setSelectionRange(endPosition + nPosition, endPosition
				+ nPosition);
	}
	
	convert();
};


//上传图片
function insertImg(url) {
	img = '![图片](' + url + ')';

    insertString('\n' + img + '\n', 0);
}
//行内代码块
function insert_codeBlock() {
    insertString('``', 1);
}
//粗体
function insert_fontWeightBold() {
    insertString('****', 2);
}
//斜体
function insert_slanting() {
    insertString('**', 1);
}
//有序列表
function insert_rank_list() {
    insertString('1. ', 0);
}
//无序列表
function insert_list() {
    insertString('- ', 0);
}
///////////////////////////////
var codeList = [
"Java", "JavaScript", "Shell", "C", "C#", "CSS", "XML", "Scala", "GO", "Ruby", "Python"            
];
function showInsertCodeBlock(thisObj) {
	var _thisObj = $(thisObj);
	var target = $('#codeList');
	
	var _position = _thisObj.position();
	
	target.css({
		left : _position.left + 20 + 'px',
		top : _position.top + 'px'
	});
	target.fadeIn(0);
}
//插入完整代码
function insert_codeM(code) {
	var h = '\n';
	h += '```' + code;
	h += '\n\n';
	h += '```\n';
    insertString(h, h.length - 5);
    $('#codeList').fadeOut(0);
}
////////////////////////
//分割线
function insert_midLine() {
    insertString('\n -------- \n', 0);
}

///////////////////////
//超链接
function showLinkBlock() {
	
}
///////////////////////

//换行
function insert_lineEnter() {
    insertString('\n <br /> \n', 0);
}
